package com.winshare.saleAssistant.service;

import com.winshare.saleAssistant.domain.dto.req.*;
import com.winshare.saleAssistant.domain.dto.resp.ProductPreviewDTO;
import com.winshare.saleAssistant.domain.dto.resp.ProductRespDTO;
import com.winshare.saleAssistant.util.Page;

public interface ProductService {

    void save(ProductCreateDTO productCreateDTO);

    void update(ProductUpdateDTO productUpdateDTO);

    void delete(ProductIdDTO productIdDTO);

    Page<ProductRespDTO> getProductList(ProductQueryDTO productQueryDTO);

    void cancelProduct(ProductIdDTO productIdDTO);

    ProductPreviewDTO previewProduct(ProductPreviewQueryDTO productPreviewQueryDTO);

    void submitProduct(ProductIdDTO productIdDTO);

    void agreeIssueProduct(ProductIdDTO productIdDTO);

    void agreeNoIssueProduct(ProductIdDTO productIdDTO);

    void updateProductSort(ProductSortDTO productSortDTO);

    ProductRespDTO getProductDetail(BaseIdDTO baseIdDTO);

    void addReadCount(ProductReadCountDTO productReadCountDTO);

    void addPromotionTimes(BaseIdDTO baseIdDTO);

    void releaseProduct(ProductIdDTO productIdDTO);
}
